Input: add I2C attached EETI EXC3000 multi touch driver
authorAhmet Inan <inan@distec.de>
Sat, 14 Oct 2017 17:10:53 +0000 (10:10 -0700)
committerPhil Elwell <pelwell@users.noreply.github.com>
Fri, 19 Jan 2018 13:33:39 +0000 (13:33 +0000)
commitb858211fd914fb851e0e718f5678642d72d3efff
treef0c105f9c2283a57ca27e61d605fe87414ec69e5
parent783daf505c2d8ecf26eeb4b4cd657f4b48072540
Input: add I2C attached EETI EXC3000 multi touch driver

commit 7e577a17f2eefeef32f1106ebf91e7cd143ba654 upstream.
beware: code adapted to use the old timer API.

The 3000 series have a new protocol which allows to report up to 5 points
in a single 66 byte frame. One must always read in 66 byte frames.
To support up to 10 points, two consecutive frames need to be read:
The first frame says how many points until sync.
The second frame must say zero points or both frames must be discarded.

To be able to work with the higher 400KHz I2C bus rate, one must
successfully send a special package prior _each_ read or the controller
will refuse to cooperate.

This is a minimal implementation based on egalax_i2c.c (which can be found
on the internet) and egalax_ts.c but without the vendor interface and no
power management support.

Signed-off-by: Ahmet Inan <inan@distec.de>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Documentation/devicetree/bindings/input/touchscreen/exc3000.txt [new file with mode: 0644]
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Makefile
drivers/input/touchscreen/exc3000.c [new file with mode: 0644]